package com.example.user.service.permission;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.user.controller.permission.vo.role.RoleSaveReqVO;
import com.example.user.dal.dataobject.permission.RoleDO;
import jakarta.validation.Valid;

public interface RoleService extends IService<RoleDO> {

    /**
     * 创建角色
     *
     * @param createReqVO 创建角色信息
     * @param type        角色类型
     * @return 角色编号
     */
    Long createRole(@Valid RoleSaveReqVO createReqVO, Integer type);

    /**
     * 更新角色
     *
     * @param updateReqVO 更新角色信息
     */
    void updateRole(@Valid RoleSaveReqVO updateReqVO);

    /**
     * 删除角色
     *
     * @param id 角色编号
     */
    void deleteRole(Long id);

    /**
     * 获得角色
     *
     * @param id 角色编号
     * @return 角色
     */
    RoleDO getRole(Long id);

}
